-
-
Notifications
You must be signed in to change notification settings - Fork 24
Add Model Context Protocol for AI Agent support #333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (3)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including You can disable this status message by setting the WalkthroughA development container configuration for .NET 10 Preview is introduced, along with package lock files for the main and test projects to ensure consistent dependency management. The Azure pipeline is updated to build and publish a third library, with corresponding comments and steps adjusted for clarity and completeness. Changes
Sequence Diagram(s)sequenceDiagram
participant Developer
participant DevContainer
participant VSCode
participant Docker
Developer->>VSCode: Open project in container
VSCode->>DevContainer: Initialize using .devcontainer/devcontainer.json
DevContainer->>Docker: Start container with .NET 10 Preview image
DevContainer->>VSCode: Install extensions (C#, EditorConfig, Copilot Chat)
DevContainer->>DevContainer: Run post-create command (dotnet --version)
VSCode->>Developer: Ready-to-use .NET 10 Preview environment
sequenceDiagram
participant Pipeline
participant BuildStep1
participant BuildStep2
participant BuildStep3
participant PublishStep
Pipeline->>BuildStep1: Build Library 1
Pipeline->>BuildStep2: Build Library 2
Pipeline->>BuildStep3: Build Library 3 (nanoFramework.WebServer.Mcp)
Pipeline->>PublishStep: Publish all three libraries
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🔭 Outside diff range comments (1)
azure-pipelines.yml (1)
90-93: Release notes omit the new MCP package
releaseNotesInlineonly advertisesnanoFramework.WebServerandnanoFramework.WebServer.FileSystem. Add the MCP line or generate notes dynamically to avoid confusing consumers.-:package: [nanoFramework.WebServer](...) -:package: [nanoFramework.WebServer.FileSystem ...](...) +:package: [nanoFramework.WebServer](...) +:package: [nanoFramework.WebServer.FileSystem ...](...) +:package: [nanoFramework.WebServer.Mcp](https://www.nuget.org/packages/nanoFramework.WebServer.Mcp/$(MY_NUGET_VERSION)) v$(MY_NUGET_VERSION)
🧹 Nitpick comments (5)
nanoFramework.WebServer.Mcp/packages.lock.json (1)
4-70: Lock-file committed – consider enforcing restore consistencyGreat to see deterministic versions being locked. To guarantee CI fails whenever the lock file drifts, enable NuGet’s
restoreLockedMode( orRestoreLockedModeMSBuild property).
This prevents accidental dependency upgrades slipping through local restores..devcontainer/devcontainer.json (2)
3-6: Pin the Docker base image digest to avoid silent preview updates
mcr.microsoft.com/devcontainers/dotnet:dev-10.0-preview-nobleis a moving tag; the underlying image may change and break reproducibility.
Recommend switching to a digest-pinned reference:-"image": "mcr.microsoft.com/devcontainers/dotnet:dev-10.0-preview-noble", +"image": "mcr.microsoft.com/devcontainers/dotnet@sha256:<exact-digest>",
9-13: Optional: freeze VS Code extension versionsFor long-lived dev-containers it’s safer to pin specific extension versions (e.g.
"[email protected]") to avoid sudden breaking upgrades.
Purely optional, but helps CI / Codespaces reproducibility.azure-pipelines.yml (2)
67-70: Trailing whitespace flagged by YAML-lintLine 67 contains stray spaces – fails
yamllintin strict setups.
Quick fix:- - template: azure-pipelines-templates/class-lib-package.yml@templates·· + - template: azure-pipelines-templates/class-lib-package.yml@templates
46-49: VariablenugetPackageNameis now misleadingSince three distinct packages are produced, keeping a single global
nugetPackageNamepointing at the base package can be error-prone (e.g., GitHub release title).
Consider removing the variable and inlining, or converting to a list.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (29)
.gitignoreis excluded by none and included by noneREADME.mdis excluded by!**/*.mdand included by nonenanoFramework.WebServer.Mcp.nuspecis excluded by none and included by nonenanoFramework.WebServer.Mcp/DescriptionAttribute.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/HashtableExtension.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/McpServerBasicAuthenticationController.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/McpServerController.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/McpServerKeyAuthenticationController.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/McpServerToolAttribute.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/McpToolRegistry.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/McpToolsJsonHelper.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/Properties/AssemblyInfo.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/ToolMetadata.csis excluded by none and included by nonenanoFramework.WebServer.Mcp/nanoFramework.WebServer.Mcp.nfprojis excluded by none and included by nonenanoFramework.WebServer.Mcp/packages.configis excluded by none and included by nonenanoFramework.WebServer.slnis excluded by none and included by nonetests/McpClientTest/McpClientTest.csis excluded by none and included by nonetests/McpEndToEndTest/McpEndToEndTest.nfprojis excluded by none and included by nonetests/McpEndToEndTest/McpToolsClasses.csis excluded by none and included by nonetests/McpEndToEndTest/Program.csis excluded by none and included by nonetests/McpEndToEndTest/Properties/AssemblyInfo.csis excluded by none and included by nonetests/McpEndToEndTest/packages.configis excluded by none and included by nonetests/McpEndToEndTest/requests.httpis excluded by none and included by nonetests/McpServerTests/McpServerTests.nfprojis excluded by none and included by nonetests/McpServerTests/McpToolRegistryTests.csis excluded by none and included by nonetests/McpServerTests/McpToolsAttributeTests.csis excluded by none and included by nonetests/McpServerTests/Properties/AssemblyInfo.csis excluded by none and included by nonetests/McpServerTests/nano.runsettingsis excluded by none and included by nonetests/McpServerTests/packages.configis excluded by none and included by none
📒 Files selected for processing (5)
.devcontainer/devcontainer.json(1 hunks)azure-pipelines.yml(2 hunks)nanoFramework.WebServer.Mcp/packages.lock.json(1 hunks)tests/McpEndToEndTest/packages.lock.json(1 hunks)tests/McpServerTests/packages.lock.json(1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
azure-pipelines.yml
[error] 67-67: trailing spaces
(trailing-spaces)
🔇 Additional comments (2)
tests/McpServerTests/packages.lock.json (1)
53-58: 👍 Including nanoFramework.TestFramework is spot-onLocking the test framework version alongside runtime libs will prevent mismatched runner issues. No further action required.
tests/McpEndToEndTest/packages.lock.json (1)
29-34: Wi-Fi package pulled into end-to-end testsJust double-check that test devices truly require
nanoFramework.System.Device.Wifi; if not, you can trim cold-start time by removing the extra native dependency. Otherwise, looks fine.
|
josesimoes
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LVGTM! 😉
This is a very nice addition. Well done.
Can't wait what the community will do with this.
Something for a future PR (same applies to a couple of other repos) the README is growing beyond a reasonable size. Despite the content being valuable, it makes it hard to find/read, completely "hides" the last sections, and doesn't provide a nice "pitch" which is the intended usage of the README here.
I suggest we split the various topics in a docs folder. Tidy and organized. Then replace the contents in the README with the links to those.
A good example on how something with similar complexity is well structured: https://github.com/microsoft/vstest
|
Yes, good feedback, let's then do it in another PR to rearrange the docs. Indeed, we can break it down. |



Description
Add Model Context Protocol for AI Agent support
Motivation and Context
How Has This Been Tested?
Screenshots
Types of changes
Checklist:
Summary by CodeRabbit